package com.evan.review.architecture.components.room;

import androidx.room.Dao;
import androidx.room.Delete;
import androidx.room.Insert;
import androidx.room.Query;
import androidx.room.Update;

import java.util.List;

/**
 * Room DAO接口 - 笔记数据访问对象
 */
@Dao
public interface NoteDao {
    
    /**
     * 获取所有笔记
     */
    @Query("SELECT * FROM notes ORDER BY id DESC")
    List<Note> getAll();
    
    /**
     * 根据ID查询笔记
     */
    @Query("SELECT * FROM notes WHERE id = :id")
    Note getById(int id);
    
    /**
     * 根据标题搜索笔记
     */
    @Query("SELECT * FROM notes WHERE title LIKE '%' || :keyword || '%'")
    List<Note> searchByTitle(String keyword);
    
    /**
     * 插入笔记
     */
    @Insert
    void insert(Note note);
    
    /**
     * 更新笔记
     */
    @Update
    void update(Note note);
    
    /**
     * 删除笔记
     */
    @Delete
    void delete(Note note);
    
    /**
     * 删除所有笔记
     */
    @Query("DELETE FROM notes")
    void deleteAll();
} 